const inputField = document.getElementById('inputField');
const sendButton = document.getElementById('sendButton');
const chatContainer = document.querySelector('.chat-container');
let profileActive = "1"
function addMessage(message, isSent) {
  const messageContainer = document.createElement('div');
  messageContainer.classList.add('message');
  if (isSent) {
    messageContainer.classList.add('sent');
  } else {
    messageContainer.classList.add('received');
  }
  const messageText = document.createElement('p');
  messageText.classList.add('message-text');
  messageText.textContent = message
  messageContainer.appendChild(messageText); // Добавляем messageText к messageContainer
  chatContainer.appendChild(messageContainer); // Добавляем messageContainer к chatContainer
  chatContainer.scrollTop = chatContainer.scrollHeight;
}

function sendMessage() {
  const message = inputField.value.trim();
  if (message !== '') {
    addMessage(message, true);
    inputField.value = '';

    fetch('/api/interact', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ content: message, id_profile: profileActive })
    })
    .then(response => response.json())
    .then(data => {
      // Обработка ответа сервера, если требуется
    })
    .catch(error => console.error('Error:', error));
  }
}

inputField.addEventListener('keydown', function(event) {
  if (event.key === 'Enter') {
    event.preventDefault();
    sendMessage();
  }
});

sendButton.addEventListener('click', sendMessage);

// Функция для получения истории чата каждую секунду
function getChatHistory() {
  
  fetch('api/history')
  
    .then(response => response.json())
    .then(data => {
      if (!data || data.length === 0) { // Проверка, что данные существуют и не пусты
        console.log("Нет данных для отображения.");
        return; // Прекращаем выполнение функции, если нет данных
      }
      data.forEach(message => {
        if (!isMessageAlreadyAdded(message.content)) {
          addMessage(message.content, message.role === 'user');
        }
      });
    })
    .catch(error => console.error('Error:', error));
}
function getChatHistory() {
  const queryParams = new URLSearchParams({ id_profile: profileActive }).toString();
  const url = `/api/history?${queryParams}`;

  fetch(url)
    .then(response => response.json())
    .then(data => {
      if (!data || data.length === 0) {
        console.log("Нет данных для отображения.");
        return;
      }
      data.forEach(message => {
        if (!isMessageAlreadyAdded(message.content)) {
          addMessage(message.content, message.role === 'user');
        }
      });
    })
    .catch(error => console.error('Error:', error));
}
// Функция для проверки, было ли уже добавлено сообщение в чат
function isMessageAlreadyAdded(messageContent) {
  const messages = chatContainer.querySelectorAll('.message-text');
  for (let i = 0; i < messages.length; i++) {
    if (messages[i].textContent.trim() === messageContent.trim()) {
      return true;
    }
  }
  return false;
}

// Получение истории чата при загрузке страницы и запуск функции каждую секунду
getChatHistory();
setInterval(getChatHistory, 1000); // 1000 миллисекунд = 1 секунда


document.addEventListener('DOMContentLoaded', function() {
 // Переменная для хранения активного профиля
  const profiles = document.querySelectorAll('.profile-entry');

  profiles.forEach(profile => {
    profile.addEventListener('click', function() {
      // Убираем класс 'active' со всех профилей
      profiles.forEach(p => p.classList.remove('active'));
      clearChatHistory()
      this.classList.add('active');
      
      profileActive = this.id
   
    });
  });
});

function clearChatHistory() {
  while (chatContainer.firstChild) {
    chatContainer.removeChild(chatContainer.firstChild);
  }
}